[Talend]tFixedFlowInputを利用して固定値を利用する

[Talend]tFixedFlowInputを利用して固定値を利用する

今回はTalendのコンポーネント「tFixedFlowInput」を紹介したいと思います。
Clock Icon2018.10.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。DI部の大高です。

今回はTalendのコンポーネント「tFixedFlowInput」を紹介したいと思います。

前提条件

Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.0.1」で検証しています。

tFixedFlowInputについて

「tFixedFlowInput」を利用すると固定値をrowとして後続のコンポーネントに流すことができます。

「tFixedFlowInput」コンポーネントのTalend Helpページはこちらです。

tFixedFlowInput

では、具体的に以下で解説していきます。

ジョブの説明

「tFixedFlowInput」で固定値を設定してrowを生成し、「tLogRow」で内容を標準出力に表示します。

サブジョブを3つ作成しており、「tFixedFlowInput」の設定が上から順に「シングルテーブル」、「インラインテーブル」、「インラインコンテンツ」に設定してあります。

「tFixedFlowInput」コンポーネントの設定

「tFixedFlowInput」のスキーマ定義は3つとも以下のように、「Year」と「Name」カラムを持つスキーマとしています。

「tFixedFlowInput」コンポーネントの設定としては、まず「行数」があります。これは、設定した値を何回繰り返して後続のコンポーネントにrowとして流すかの設定となります。今回はすべて「1」を設定していますが、複数回繰り返したい場合には値を設定します。

次に「モード」の設定です。「モード」は「シングルテーブル」と「インラインテーブル」と「インラインコンテンツ」の3つがありますので、それぞれ解説していきます。

「シングルテーブル」モード

「シングルテーブル」モードはもっともシンプルなモードで、スキーマ定義で設定した定義に対して1レコード分の値を設定するモードです。

スキーマ定義に応じて「Column」が自動的に表示されますので、カラム毎に「値」に実際の値を入力します。

「インラインテーブル」モード

「インラインテーブル」モードは、「シングルテーブル」モードを拡張したようなものとなり、複数レコードの値が指定できるようになっています。

サンプルでは、2レコードの値を設定しました。レコードを増やしたい場合には下部の「+」ボタンをクリックすることで増やすことができます。

「インラインコンテンツ」モード

「インラインコンテンツ」モードは、「コンテンツ」に対して「行区切り」と「フィールド区切り」で指定した区切り文字列で区切った文字列を設定することで複数レコードの値を指定できるモードです。

項目名の通り、各レコードは「行区切り」の文字列で区切り、各フィールドは「フィールド区切り」の文字列で区切ります。

サンプルでは、以下のように値を設定しました。なお、コンテンツに設定する文字列はダブルクォーテーションで括らなくて良い点に注意してください。

これで設定は完了です。

「tLogRow」コンポーネントの設定

「tLogRow」コンポーネントは、デフォルトのまま特になにも設定しなかったので、ここでは説明を省略します。

実行結果

設定は以上です。実際にこのジョブを実行すると以下のように出力されます。

[statistics] connecting to socket on port 3611
[statistics] connected
2018|ZI-O
2017|Build
2016|Ex-Aid
2015|Ghost
2014|Drive
[statistics] disconnected

「tFixedFlowInput」で設定した通りに、固定値が出力されていますね!

まとめ

以上、「tFixedFlowInput」コンポーネントの紹介でした。

「tFixedFlowInput」は設計上、変わり得ることのない値を設定して、rowとして後続のコンポーネントで利用する時に利用できる便利なコンポーネントだと思います。

それでは。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.